package com.qijian.maindata.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qijian.common.annotation.Excel;
import com.qijian.maindata.domain.CustomerComplaints;
import com.qijian.maindata.domain.CustomerComplaintsDuty;
import com.qijian.maindata.domain.CustomerComplaintsItem;
import com.qijian.maindata.domain.CustomerComplaintsProject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 客户投诉对象
 *
 * @author qijian
 * @date 2024-09-06
 */

@Data
@ToString
public class CustomerComplaintsExportVo {

    private List<CustomerComplaintsDuty> complaintsDutyList;
    private List<CustomerComplaintsItem> complaintsItemList;
    private List<CustomerComplaintsProject> complaintsPorjectList;


    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "唯一id")
    private Long id;

    @Excel(name = "单据编号" , sort = 1)
    @ApiModelProperty(value = "单据编号")
    private String number;

    @Excel(name = "客户", sort = 2)
    @ApiModelProperty(value = "客户")
    private String custom;

    @Excel(name = "工厂", sort = 2)
    @ApiModelProperty(value = "工厂")
    private String factory;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收到日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 3)
    @ApiModelProperty(value = "收到日期")
    private Date receiveDate;

    @Excel(name = "开工令",sort = 4)
    private String projectMachineNo;

//    @Excel(name = "机台",sort = 5)
//    private String machineNumber;
//
//    @Excel(name = "产品名称",sort = 6)
//    private String itemName;

    @Excel(name = "(客户)物料号", sort = 7)
    @ApiModelProperty(value = "(客户)物料号")
    private String materialNumber;

    @Excel(name = "(客户)ncr", sort = 8)
    @ApiModelProperty(value = "(客户)ncr")
    private String customerNcr;

    @Excel(name = "内部ncr", sort = 9)
    @ApiModelProperty(value = "内部ncr")
    private String ncrCode;

    @Excel(name = "问题描述", sort = 11)
    @ApiModelProperty(value = "问题描述")
    private String description;

    @Excel(name = "涉及数量", sort = 12)
    @ApiModelProperty(value = "涉及数量")
    private Long quantity;

    @Excel(name = "币别", sort = 13)
    @ApiModelProperty(value = "币别")
    private String currencyType;

    @Excel(name = "预估赔偿", sort = 14)
    @ApiModelProperty(value = "预估赔偿")
    private BigDecimal estimatedCompensation;

    @Excel(name = "实际赔偿", sort = 15)
    @ApiModelProperty(value = "实际赔偿")
    private BigDecimal actualCompensation;

    @Excel(name = "责任人",sort = 16)
    private String userName;

    @Excel(name = "根本原因", sort = 17)
    @ApiModelProperty(value = "根本原因")
    private String analysis;

    @Excel(name = "整改和预防", sort = 18)
    @ApiModelProperty(value = "整改和预防")
    private String rectificationAndPrevention;

    @Excel(name = "反馈", sort = 19)
    @ApiModelProperty(value = "反馈")
    private String feedback;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "关闭日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 20)
    @ApiModelProperty(value = "关闭日期")
    private Date closeDate;

    @Excel(name = "备注", sort = 21)
    @ApiModelProperty(value = "备注")
    private String remark;

    @Excel(name = "创建人",sort = 22)
    private String CreateBy;

    private List<Long> ids;

    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd", sort =23)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    @Excel(name = "责任部门#问题分类#问题分类详情", sort =24)
    private String depts;
}
